package os

import (
	"fmt"
	"os"
)

func CreateFile() {
	// 创建文件
	f, err := os.Create("a.txt")
	if err != nil {
		fmt.Printf("err: %v\n", err)
	} else {
		fmt.Printf("f: %v\n", f.Name())
	}
}

func CreateDir() {
	// 创建test目录 并赋777权限
	err := os.Mkdir("test", os.ModePerm)
	if err != nil {
		fmt.Printf("err: %v\n", err)
	}
	// 递归创建
	err2 := os.MkdirAll("test/a/b", os.ModePerm)
	if err2 != nil {
		fmt.Printf("err2: %v\n", err2)
	}
}

func RemoveDir() {
	// 删除文件
	err := os.Remove("a.txt")
	if err != nil {
		fmt.Printf("err: %v\n", err)
	}
	// 删除当前文件夹下所有
	err2 := os.RemoveAll("test")
	if err2 != nil {
		fmt.Printf("err2: %v\n", err2)
	}
}

func GetWd() {
	// 获取当前工作目录
	dir, err := os.Getwd()
	if err != nil {
		fmt.Printf("err: %v\n", err)
	} else {
		fmt.Printf("dir: %v\n", dir)
	}
}

func ChWd() {
	// 修改工作目录
	err := os.Chdir("d:/")
	if err != nil {
		fmt.Printf("err: %v\n", err)
	} else {
		GetWd()
	}
}

func GetTemp() {
	// 获取临时文件目录
	s := os.TempDir()
	fmt.Printf("s: %v\n", s)
}

func RenameFile() {
	// 文件重命名
	err := os.Rename("test.txt", "test2.txt")
	if err != nil {
		fmt.Printf("err: %v\n", err)
	}
}

func ReadFile() {
	// 读取文件
	b, err := os.ReadFile("test2.txt")
	if err != nil {
		fmt.Printf("err: %v\n", err)
	} else {
		fmt.Printf("string(b[:]): %v\n", string(b[:]))
	}
}

func WriteFile() {
	// 写文件
	os.WriteFile("test2.txt", []byte(`
		"hello"
		"golang"
	`), os.ModePerm)
}
